import i18next,{i18n as i18nInstance} from 'i18next'

import { initReactI18next } from 'react-i18next'

import {languages, namespaces} from './i18n.constants'

import HttpApi from 'i18next-http-backend'

const createI18n = (language:string):i18nInstance => {

    // 创建一个 i18n 的实例，并且使用一个中间件 initReactI18next,使其可以用于 react
    const i18n = i18next.createInstance().use(initReactI18next);

    // 给 i18n 初始化
    i18n
        .use(HttpApi)
        .init({
            lng:language,
            fallbackLng:language, // 设置语言失败后回退使用的语言
            ns:namespaces.common,
            backend:{ // 使用后端语言包
                loadPath:'/locales/{{lng}}/{{ns}}.json' // 实际地址为 当前页面根域名 + loadPath eg：http://localhost/locales/en/common.json
            }
        })

    return i18n;
}

export const i18n = createI18n(languages.es);